package leetcode; /**
 * description:
 * author:zt
 * date:2021-08-12
 */

/**
 * 给定一个链表，两两交换其中相邻的节点，并返回交换后的链表。
 *
 * 你不能只是单纯的改变节点内部的值，而是需要实际的进行节点交换。
 */
public class leetcode24 {
    public ListNode swapPairs(ListNode head) {
        if (head==null) return head;
        ListNode dum = new ListNode();
        dum.next = head;
        ListNode pre = dum;
        while (head.next!=null){
            ListNode next = head.next.next;
            pre.next = head.next;
            head.next.next = head;
            head.next = next;

            head = head.next;
            pre = pre.next.next;
        }
        return dum.next;
    }
}
